Field of the Invention
Embodiments of the present invention relate generally to computer processing and, more specifically, to techniques for automatically placing escape holes during three-dimensional printing.
Description of the Related Art
A three-dimensional (3D) printer generates a 3D object based on a 3D printable digital model, such as a 3D mesh of triangles. Typically, a 3D printer interprets a single, closed 3D mesh as delineating a solid component of the model. However, since the amount of material or time required to print many solid 3D objects may be unacceptable large/long, the designer often modifies the single closed 3D mesh to delineate one or more hollow components or regions.
To “hollow” the 3D model, the designer creates an inner shell that is separated from the single, closed 3D mesh (the outer shell) by the desired wall thickness. The 3D printer interprets the combination of inner shell and outer shell as a hollow component, and leaves the interior of the inner shell empty or filled with unprinted material. For instance, resin-based stereolithography printers fill hollow components with uncured resin. Similarly, fused-powder-style printers fill hollow components with powder, and fused deposition modeling printers often fill hollow components with dissolvable support material.
Removing the unprinted material encased in hollow components is desirable for multiple reasons. For instance, unprinted material that is not removed adds weight to the model, may cause post-processing visual defects (e.g. uneven dying), and is unable to be recycled for future use. Further, many 3D printers will not print hollow components that are fully enclosed, rejecting the 3D model or printing solid components in lieu of the fully enclosed hollow components. Consequently to enable the release of the unprinted material enclosed in hollow components, the designer modifies the 3D model to specify tiny holes, known as “escape” holes that perforate each hollow component.
In one approach to adding escape holes to a 3D model, a designer attempts to manually modify the 3D model via an interactive, graphical user interface (GUI)—based modeling tool. With such tools, for each desired escape hole, the designer creates a channel between the inner shell and outer shell. The designer then visual inspects the 3D model, ensuring that the created channel fully breaches the hollow component and complies with 3D printer-specific escape hole constraints, such as minimum hole size. With this approach, the designer often iterates each time he/she creates an escape hole—fine-tuning the escape hole based on the visual representation of the 3D model in the GUI until the desired escape hole is correctly represented by the 3D grid. As is clear, such a process is time consuming, tedious, and error-prone. Further, since automated flows are often used to generate 3D models and GUI-based modelling tools are not widely available for such flows, this GUI-based approach to adding escape holes has limited applicability.
As the foregoing illustrates, what is needed in the art are more effective techniques for generating escape holes to create hollow components or regions during 3D printing.